package Adaper;


/**
 * Created by 0171093 on 2018/2/7.
 * 适配器模式:将一个接口转化成另外一个希望得到的接口
 * 适配器模式包括对象适配器模式和类适配器模式。
 * 目标(Target)角色：这就是所期待得到的接口。注意：由于这里讨论的是类适配器模式，因此目标不可以是类。
 * 源(Adaptee)角色：现在需要适配的接口。
 * 适配器(Adaper)角色：适配器类是本模式的核心。适配器把源接口转换成目标接口。显然，这一角色不可以是接口，而必须是具体类
 * <p/>
 * 适配器模式优缺点
 * 1更好的复用性 系统需要使用现有的类，而此类的接口不符合系统的需要。那么通过适配器模式就可以让这些功能得到更好的复用。
 * 2更好的扩展性 在实现适配器功能的时候，可以调用自己开发的功能，从而自然地扩展系统的功能。
 * <p/>
 * 缺点
 * 多的使用适配器，会让系统非常零乱，不易整体进行把握。比如，明明看到调用的是A接口，其实内部被适配成了B接口的实现，
 * 一个系统如果太多出现这种情况，无异于一场灾难。因此如果不是很有必要，可以不使用适配器，而是直接对系统进行重构。
 * <p/>
 * 实例:产品需求需要得到乘法（Target）的功能，但是当前系统只有加法(Adaptee)的功能，此时采用适配器去适配。
 */
public class Application {


    public static void main(String[] args) {

        MultiplyAdapter adapter = new MultiplyAdapter();

        int dd = adapter.multiply(11, 2);
        // int dd=IMultiplyService.multiply(11,2);
        System.out.print("dd=" + dd);
    }
}
